setInfos(3, "Damian : pet play", "Cyber Master Damian will take care of you - a big 24/7 script including permissions, punishments...", "Indica, Doti", "started", 0xFFFFFF, "en", ["anal", "long", "exhibition", "femaledom", "formale", "humiliation", "urine", "transgender", "options", "spanking", "shopping", "toys", "sperm"]);

// CyberMistress - advancedpetplay
//
def endReached = false
def block = "begin"
if(loadString("cybermistress.wanted_start_block")!=null) {
	block = loadString("cybermistress.wanted_start_block")
	save("cybermistress.wanted_start_block",null)
}
def newBlock = block
while(!endReached && newBlock!=null) {
block = null
switch(newBlock) {
case "begin":
	if(true!=loadBoolean("jewell.levelonepuppy")) {
		block="cheater"
		break
	}
	if(true!=loadBoolean("jewell.collarmission")) {
		block="back"
		break
	}
	block = "collar"
	break

case "cheater":
	show("No cheating whore. You're not advanced enough for this kind of training. I wouldn't want to break my favorite toy.")
	save("cybermistress.points", Math.max(0,-10+loadInteger("cybermistress.points")))
	wait(15)
	block = "finish"
	break	
	
case "collar":
	show("Did you buy or own a proper dog collar, "+loadString("intro.name")+"?")
	if(getBoolean("Did you buy a dog collar?"))
		block = "buycollar"
	else
		block = "baddog"
	break

case "buycollar":
	show("Good doggie!")
	wait(7)
	save("jewell.collarmission", null)
	save("toys.dog_collar", true)
	block = "back"
	break

case "baddog":
	show("Bad dog! BAD DOG! NO CUMMIES!")
	wait(10)
	save("jewell.deny_Orgasm", getTime()+24*3600)
	block = "finish"
	break

case "back":
	setImage("jewell/punishments2.jpg")
	def messages4 = ["You've been a very good doggy lately "+loadString("intro.name")+", I'm proud of my little puppy.","You're really coming along in your puppy training, "+loadString("intro.name")+". Being a dumb animal suits you.","Come here puppy. COME. Good boy. Good doggie."]
	show(messages4[getRandom(3)])
	wait(8)
	block = "begin2"
	break

case "begin2":
	show("You need even more advanced puppy training, "+loadString("intro.name")+". I've allowed you too many human privileges lately.")
	wait(8)
	block = "begin3"
	break

case "begin3":
	show("Take off all your clothes and put them out of the way. You will remain naked like the dumb animal you are.")
	showButton("I am naked Master")
	block = "begin4"
	break

case "begin4":
	if(loadBoolean("toys.dog_collar")) {
		show("Now, go fetch your collar for me boy.")
		showButton("I have it Master")
		block = "begin5"
	} else {
		show("You don't have any dog collar ?")
		showButton("No Master")		
		block = "collarmission"
	}
	break

case "begin5":
	if(getBoolean("Is it a genuine pet collar ?", "Genuine", "Something I made myself"))
		block = "begin6"
	else
		block = "collarmission"
	break

case "collarmission":
	show("This is unacceptable. My puppy needs a proper dog collar. I order you to go buy one.")
	showButton("Yes Master")
	save("jewell.collarmission", true)
	block = "finish"
	break

case "begin6":
	show("Put your collar on puppy. Lock it if you have the means.")
	showButton("I am collared Master")
	block = "begin7"
	break

case "begin7":
	show("Now fetch two bowls for me.")
	showButton("Finished Master")
	block = "begin8"
	break

case "begin8":
	if(getBoolean("Tell me, puppy, do you have real dogfood?"))
		block = "dogfood"
	else
		block = "makefood"
	break

case "dogfood":
	show("Very good, my little doggie. Fill one of the bowls with dogfood, and the other with water. Put them on the ground where you can get at them.")
	showButton("Finished Master")
	block = "begin9"
	break

case "makefood":
	show("Hmph. I want you to fill one of the bowls with water. In the other bowl, I want you to make a paste out of breadcrums, milk, and at least three other ingredients. The final color of the paste must be light or dark brown.")
	showButton("Finished Master")
	block = "begin9"
	break

case "begin9":
	show("Okay puppy, you know what comes next. Go fetch me your tail plug, and insert it into your butt.")
	showButton("Finished Master")
	block = "begin10"
	break

case "begin10":
	show("Good boy. Wag your tail for your Master, puppy. Show me how much you love being treated like a dumb animal. This is where you belong. Don't stop yet.")
	wait(15+getRandom(15))
	block = "name"
	break

case "name":
	if(true==loadBoolean("jewell.named")) {
		block="socks1"
		break
	}
	show("Okay puppy, it's high time I give my pet a name. I've been calling you puppy for too long, you might start responding to it exclusively. You need a proper name.")
	showButton("Yes Master")
	block = "namechoose"
	break

case "namechoose":
	show("What to call my little puppy?")
	wait(1)
	switch(getRandom(10)) {
	case 0: block = "name1"; break
	case 1: block = "name2"; break
	case 2: block = "name3"; break
	case 3: block = "name4"; break
	case 4: block = "name5"; break
	case 5: block = "name6"; break
	case 6: block = "name7"; break
	case 7: block = "name8"; break
	case 8: block = "name9"; break
	case 9: block = "name10"; break
	}
	break

case "name1":
	save("jewell.puppyname","Spot")
	show("I think I'll call you... Spot. That's simple enough for even you to remember.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name2":
	save("jewell.puppyname","Fussy")
	show("I think I'll call you... Fussy. That's a cute name, don't you think?")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name3":
	save("jewell.puppyname","Goofy")
	show("I think I'll call you... Goofy. Like the dog on the TV.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name4":
	save("jewell.puppyname","Stupid")
	show("I think I'll call you... Stupid. That's the first word that comes to mind.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name5":
	save("jewell.puppyname","Lucky")
	show("I think I'll call you... Lucky. Because you're so lucky that I've decided to make you into a dog.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name6":
	save("jewell.puppyname","Pinky")
	show("I think I'll call you... Pinky. After your favorite colour.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name7":
	save("jewell.puppyname","Mittens")
	show("I think I'll call you... Mittens. It's the only thing that really suits you.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name8":
	save("jewell.puppyname","Elmo")
	show("I think I'll call you... Elmo. I think that describes you pretty well.")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name9":
	save("jewell.puppyname","Greedy")
	show("I think I'll call you... Greedy. Because it would be impolite to name a puppy \"slut\".")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "name10":
	save("jewell.puppyname","Worm")
	show("I think I'll call you... Worm. Yeah, you're definately a \"Worm\".")
	wait(7)
	save("jewell.named", true)
	block = "socks1"
	break

case "socks1":
	show("we are almost finished getting you ready "+loadString("jewell.puppyname")+". I want you to go fetch me a pair of socks, preferably womens although it really doesn't matter.")
	showButton("I have them Master")
	block = "sag"
	break

case "sag":
	show("Make your left hand into a fist and put the first sock over it. Do the same with your right hand (you may have to open your left hand slightly to do so). Once this is complete, you are not permitted to open your fists without my express permission.")
	showButton("Yes Master")
	block = "notalk"
	break

case "notalk":
	show("Alright "+loadString("jewell.puppyname")+", you are now officially a dog. Remember: dogs can't speak, they can't stand, and they always obey their owners. From this point forward you may only bark.")
	showButton("Woof")
	block = "preamble"
	break

case "preamble":
	show("So "+loadString("jewell.puppyname")+", my dumb little doggie, I'm going to teach you some tricks. You better be a good doggie and learn fast or you're going to be a very sore little dog. Understand?")
	showButton("Woof")
	block = "pretrick"
	break

case "pretrick":
	show("Obey me immediately and without question, "+loadString("jewell.puppyname")+". Hold each position until I give you another command.")
	wait(8)
	block = "choosetrick"
	break

case "choosetrick":
	show("Okay "+loadString("jewell.puppyname")+"...")
	wait(1)
	switch(getRandom(7)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	}
	break

case "trick1":
	show("Lay down!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick2":
	show("Roll over!")
	wait(20+getRandom(30))
	switch(getRandom(7)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	}
	break

case "trick3":
	show("Sit!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick4":
	show("Speak!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick5":
	show("Beg!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick6":
	show("Wag your tail!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick7":
	show("Sniff around boy! Get the scent!")
	wait(15+getRandom(35))
	switch(getRandom(8)) {
	case 0: block = "trick1"; break
	case 1: block = "trick2"; break
	case 2: block = "trick3"; break
	case 3: block = "trick4"; break
	case 4: block = "trick5"; break
	case 5: block = "trick6"; break
	case 6: block = "trick7"; break
	case 7: block = "trick8"; break
	}
	break

case "trick8":
	show("That's enough.")
	wait(7)
	block = "food"
	break

case "food":
	show("Good boy "+loadString("jewell.puppyname")+". You've been such a good little puppy that I'm going to give you a reward!")
	wait(10)
	block = "food2"
	break

case "food2":
	show("That's right, it's dinner time! Eat up all your food as fast as you can puppy! You can drink as much water as you like, but focus on the food. You have three minutes.")
	wait(183)
	block = "food3"
	break

case "food3":
	if(getBoolean("Did you eat up ALL you dogfood?"))
		block = "food4"
	else
		block = "foodpunish"
	break

case "foodpunish":
	show("Bad dog! BAD DOG! You eat when you Master tells you to. Finish all you food and tell me when you're done.")
	showButton("Woof")
	block = "foodpunish2"
	break

case "foodpunish2":
	show("You naughty little puppy, "+loadString("jewell.puppyname")+", what am I going to do with you?")
	wait(4)
	block = "foodpunish3"
	break

case "foodpunish3":
	if(getBoolean("Did you finish it ALL?"))
		block = "foodpunish4"
	else
		block = "baddog"
	break

case "foodpunish4":
	show("Good boy. Don't disappoint me again.")
	wait(6)
	block = "food4"
	break

case "food4":
	show("What a happy puppy you must be, "+loadString("jewell.puppyname")+". You got to eat so much of your favorite yummy dog food. Wag your tail to show me how happy you are that I fed you. Don't stop.")
	wait(20+getRandom(20))
	block = "afterfood"
	break

case "afterfood":
	show("Okay puppy I'm bored of playing with you for now. Sit. Sit boy. Good dog. Now stay. Stay perfectly still until I want you again.")
	wait(60+getRandom(200))
	block = "morepuppy"
	break

case "morepuppy":
	show("There's my cute little puppy. Time to perform some more tricks for your Master!")
	wait(10)
	block = "moretricks"
	break

case "moretricks":
	show("Okay "+loadString("jewell.puppyname")+"...")
	wait(1)
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick1":
	show("Lay down!")
	wait(15+getRandom(35))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick2":
	show("Roll over!")
	wait(20+getRandom(30))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick3":
	show("Sit!")
	wait(15+getRandom(35))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick4":
	show("Speak!")
	wait(15+getRandom(35))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick5":
	show("Beg!")
	wait(15+getRandom(35))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick6":
	show("Wag your tail!")
	wait(15+getRandom(35))
	switch(getRandom(7)) {
	case 0: block = "mtrick1"; break
	case 1: block = "mtrick2"; break
	case 2: block = "mtrick3"; break
	case 3: block = "mtrick4"; break
	case 4: block = "mtrick5"; break
	case 5: block = "mtrick6"; break
	case 6: block = "mtrick7"; break
	}
	break

case "mtrick7":
	show("Okay boy, that's enough")
	wait(8)
	block = "decide"
	break

case "decide":
	show("Hmmm... I wonder if I should let you return to being a human...")
	wait(5)
	switch(getRandom(2)) {
	case 0: block = "decide1"; break
	case 1: block = "decide2"; break
	}
	break

case "decide1":
	if(loadInteger("cybermistress.points")==null)
		save("cybermistress.points", 80)
	save("cybermistress.points", +2+loadInteger("cybermistress.points"))
	show("(You've got "+loadInteger("cybermistress.points")+" points)\n"+"Alright "+loadString("jewell.puppyname")+" you may take off your puppy gear. I want you to remember the humility you've learned here though.")
	wait(5)
	save("jewell.leveltwopuppy", true)
	block = "finish"
	break

case "decide2":
	show("No, I think being a dog suits you "+loadString("jewell.puppyname")+". You'll stay a dog for now.")
	wait(7)
	block = "afterfood"
	break

case "finish":
	endRea²d = true
	break

default:
	show("Unfinished ? ("+block+")")
	endReached = true
} // end switch 
newBlock = block
} // end while

// This script, from http://ss.deviatenow.com, is protected by this licence : 
// CC by-NC, see http://creativecommons.org/licenses/by-nc/3.0/
